package leetCode;

import java.util.*;
import java.util.stream.Collectors;

/**
 * leet code2
 * 力扣算法第二道
 *
 * @author 86155
 * @date 2023/12/11
 */
public class LeetCode2 {
    public static void main(String[] args) {
        String[] a = {"abc", "acb","svb"};
        //String[] b = {"abc", "",""};
        groupAnagrams(a);
        //groupAnagrams(b);
    }

    public static List<List<String>> groupAnagrams(String[] strs) {
//        HashMap<String, Integer> map = new HashMap<>(16);
//        for(String s: strs){
//            int sum = 0;
//            for (int i = 0; i < s.length(); i++) {
//                sum += s.charAt(i);
//            }
//            map.put(s,sum);
//        }
//        System.out.println(map);
//        Collection<Integer> values = map.values();
//        TreeSet<Integer> set = new TreeSet<>();
//        set.addAll(values);
//        //返回的集合
//        List<List<String>> l = new ArrayList<>();
//        set.forEach(integer -> {
//            List<String> first = new ArrayList<>();
//            for (Map.Entry<String,Integer> entry:
//                 map.entrySet()) {
//                if (integer.equals(entry.getValue())) {
//                    first.add(entry.getKey());
//                }
//            }
//            l.add(first);
//        });
//        System.out.println(l);
//
//        return l ;
        return new ArrayList<>(Arrays.stream(strs)
                .collect(Collectors.groupingBy(str ->{
                    char[] chars = str.toCharArray();
                    Arrays.sort(chars);
                    return new String(chars);
                })).values());
    }
}
